

public abstract class State<T>
{
    public abstract void Enter(T from);
    public abstract void Update();
    public abstract void FixedUpdate();
    public abstract void Exit(T to);
    public abstract T Type { get; }
}

